package com.chuangjiangx.member.basic.dao.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class InMemberExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public InMemberExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("im.id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("im.id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("im.id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("im.id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("im.id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("im.id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("im.id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("im.id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("im.id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("im.id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("im.id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("im.id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumIsNull() {
            addCriterion("im.member_card_num is null");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumIsNotNull() {
            addCriterion("im.member_card_num is not null");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumEqualTo(String value) {
            addCriterion("im.member_card_num =", value, "memberCardNum");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumNotEqualTo(String value) {
            addCriterion("im.member_card_num <>", value, "memberCardNum");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumGreaterThan(String value) {
            addCriterion("im.member_card_num >", value, "memberCardNum");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumGreaterThanOrEqualTo(String value) {
            addCriterion("im.member_card_num >=", value, "memberCardNum");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumLessThan(String value) {
            addCriterion("im.member_card_num <", value, "memberCardNum");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumLessThanOrEqualTo(String value) {
            addCriterion("im.member_card_num <=", value, "memberCardNum");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumLike(String value) {
            addCriterion("im.member_card_num like", value, "memberCardNum");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumNotLike(String value) {
            addCriterion("im.member_card_num not like", value, "memberCardNum");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumIn(List<String> values) {
            addCriterion("im.member_card_num in", values, "memberCardNum");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumNotIn(List<String> values) {
            addCriterion("im.member_card_num not in", values, "memberCardNum");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumBetween(String value1, String value2) {
            addCriterion("im.member_card_num between", value1, value2, "memberCardNum");
            return (Criteria) this;
        }

        public Criteria andMemberCardNumNotBetween(String value1, String value2) {
            addCriterion("im.member_card_num not between", value1, value2, "memberCardNum");
            return (Criteria) this;
        }

        public Criteria andNickNameIsNull() {
            addCriterion("im.nick_name is null");
            return (Criteria) this;
        }

        public Criteria andNickNameIsNotNull() {
            addCriterion("im.nick_name is not null");
            return (Criteria) this;
        }

        public Criteria andNickNameEqualTo(String value) {
            addCriterion("im.nick_name =", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameNotEqualTo(String value) {
            addCriterion("im.nick_name <>", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameGreaterThan(String value) {
            addCriterion("im.nick_name >", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameGreaterThanOrEqualTo(String value) {
            addCriterion("im.nick_name >=", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameLessThan(String value) {
            addCriterion("im.nick_name <", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameLessThanOrEqualTo(String value) {
            addCriterion("im.nick_name <=", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameLike(String value) {
            addCriterion("im.nick_name like", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameNotLike(String value) {
            addCriterion("im.nick_name not like", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameIn(List<String> values) {
            addCriterion("im.nick_name in", values, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameNotIn(List<String> values) {
            addCriterion("im.nick_name not in", values, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameBetween(String value1, String value2) {
            addCriterion("im.nick_name between", value1, value2, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameNotBetween(String value1, String value2) {
            addCriterion("im.nick_name not between", value1, value2, "nickName");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("im.name is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("im.name is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("im.name =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("im.name <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("im.name >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("im.name >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("im.name <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("im.name <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("im.name like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("im.name not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("im.name in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("im.name not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("im.name between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("im.name not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andMobileIsNull() {
            addCriterion("im.mobile is null");
            return (Criteria) this;
        }

        public Criteria andMobileIsNotNull() {
            addCriterion("im.mobile is not null");
            return (Criteria) this;
        }

        public Criteria andMobileEqualTo(String value) {
            addCriterion("im.mobile =", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotEqualTo(String value) {
            addCriterion("im.mobile <>", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileGreaterThan(String value) {
            addCriterion("im.mobile >", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileGreaterThanOrEqualTo(String value) {
            addCriterion("im.mobile >=", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileLessThan(String value) {
            addCriterion("im.mobile <", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileLessThanOrEqualTo(String value) {
            addCriterion("im.mobile <=", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileLike(String value) {
            addCriterion("im.mobile like", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotLike(String value) {
            addCriterion("im.mobile not like", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileIn(List<String> values) {
            addCriterion("im.mobile in", values, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotIn(List<String> values) {
            addCriterion("im.mobile not in", values, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileBetween(String value1, String value2) {
            addCriterion("im.mobile between", value1, value2, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotBetween(String value1, String value2) {
            addCriterion("im.mobile not between", value1, value2, "mobile");
            return (Criteria) this;
        }

        public Criteria andSexIsNull() {
            addCriterion("im.sex is null");
            return (Criteria) this;
        }

        public Criteria andSexIsNotNull() {
            addCriterion("im.sex is not null");
            return (Criteria) this;
        }

        public Criteria andSexEqualTo(Byte value) {
            addCriterion("im.sex =", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexNotEqualTo(Byte value) {
            addCriterion("im.sex <>", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexGreaterThan(Byte value) {
            addCriterion("im.sex >", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexGreaterThanOrEqualTo(Byte value) {
            addCriterion("im.sex >=", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexLessThan(Byte value) {
            addCriterion("im.sex <", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexLessThanOrEqualTo(Byte value) {
            addCriterion("im.sex <=", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexIn(List<Byte> values) {
            addCriterion("im.sex in", values, "sex");
            return (Criteria) this;
        }

        public Criteria andSexNotIn(List<Byte> values) {
            addCriterion("im.sex not in", values, "sex");
            return (Criteria) this;
        }

        public Criteria andSexBetween(Byte value1, Byte value2) {
            addCriterion("im.sex between", value1, value2, "sex");
            return (Criteria) this;
        }

        public Criteria andSexNotBetween(Byte value1, Byte value2) {
            addCriterion("im.sex not between", value1, value2, "sex");
            return (Criteria) this;
        }

        public Criteria andBirthdayIsNull() {
            addCriterion("im.birthday is null");
            return (Criteria) this;
        }

        public Criteria andBirthdayIsNotNull() {
            addCriterion("im.birthday is not null");
            return (Criteria) this;
        }

        public Criteria andBirthdayEqualTo(Date value) {
            addCriterion("im.birthday =", value, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayNotEqualTo(Date value) {
            addCriterion("im.birthday <>", value, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayGreaterThan(Date value) {
            addCriterion("im.birthday >", value, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayGreaterThanOrEqualTo(Date value) {
            addCriterion("im.birthday >=", value, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayLessThan(Date value) {
            addCriterion("im.birthday <", value, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayLessThanOrEqualTo(Date value) {
            addCriterion("im.birthday <=", value, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayIn(List<Date> values) {
            addCriterion("im.birthday in", values, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayNotIn(List<Date> values) {
            addCriterion("im.birthday not in", values, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayBetween(Date value1, Date value2) {
            addCriterion("im.birthday between", value1, value2, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayNotBetween(Date value1, Date value2) {
            addCriterion("im.birthday not between", value1, value2, "birthday");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreIdIsNull() {
            addCriterion("im.register_store_id is null");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreIdIsNotNull() {
            addCriterion("im.register_store_id is not null");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreIdEqualTo(Long value) {
            addCriterion("im.register_store_id =", value, "registerStoreId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreIdNotEqualTo(Long value) {
            addCriterion("im.register_store_id <>", value, "registerStoreId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreIdGreaterThan(Long value) {
            addCriterion("im.register_store_id >", value, "registerStoreId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreIdGreaterThanOrEqualTo(Long value) {
            addCriterion("im.register_store_id >=", value, "registerStoreId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreIdLessThan(Long value) {
            addCriterion("im.register_store_id <", value, "registerStoreId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreIdLessThanOrEqualTo(Long value) {
            addCriterion("im.register_store_id <=", value, "registerStoreId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreIdIn(List<Long> values) {
            addCriterion("im.register_store_id in", values, "registerStoreId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreIdNotIn(List<Long> values) {
            addCriterion("im.register_store_id not in", values, "registerStoreId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreIdBetween(Long value1, Long value2) {
            addCriterion("im.register_store_id between", value1, value2, "registerStoreId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreIdNotBetween(Long value1, Long value2) {
            addCriterion("im.register_store_id not between", value1, value2, "registerStoreId");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalTypeIsNull() {
            addCriterion("im.register_terminal_type is null");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalTypeIsNotNull() {
            addCriterion("im.register_terminal_type is not null");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalTypeEqualTo(Byte value) {
            addCriterion("im.register_terminal_type =", value, "registerTerminalType");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalTypeNotEqualTo(Byte value) {
            addCriterion("im.register_terminal_type <>", value, "registerTerminalType");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalTypeGreaterThan(Byte value) {
            addCriterion("im.register_terminal_type >", value, "registerTerminalType");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalTypeGreaterThanOrEqualTo(Byte value) {
            addCriterion("im.register_terminal_type >=", value, "registerTerminalType");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalTypeLessThan(Byte value) {
            addCriterion("im.register_terminal_type <", value, "registerTerminalType");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalTypeLessThanOrEqualTo(Byte value) {
            addCriterion("im.register_terminal_type <=", value, "registerTerminalType");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalTypeIn(List<Byte> values) {
            addCriterion("im.register_terminal_type in", values, "registerTerminalType");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalTypeNotIn(List<Byte> values) {
            addCriterion("im.register_terminal_type not in", values, "registerTerminalType");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalTypeBetween(Byte value1, Byte value2) {
            addCriterion("im.register_terminal_type between", value1, value2, "registerTerminalType");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalTypeNotBetween(Byte value1, Byte value2) {
            addCriterion("im.register_terminal_type not between", value1, value2, "registerTerminalType");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumIsNull() {
            addCriterion("im.register_terminal_num is null");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumIsNotNull() {
            addCriterion("im.register_terminal_num is not null");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumEqualTo(String value) {
            addCriterion("im.register_terminal_num =", value, "registerTerminalNum");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumNotEqualTo(String value) {
            addCriterion("im.register_terminal_num <>", value, "registerTerminalNum");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumGreaterThan(String value) {
            addCriterion("im.register_terminal_num >", value, "registerTerminalNum");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumGreaterThanOrEqualTo(String value) {
            addCriterion("im.register_terminal_num >=", value, "registerTerminalNum");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumLessThan(String value) {
            addCriterion("im.register_terminal_num <", value, "registerTerminalNum");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumLessThanOrEqualTo(String value) {
            addCriterion("im.register_terminal_num <=", value, "registerTerminalNum");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumLike(String value) {
            addCriterion("im.register_terminal_num like", value, "registerTerminalNum");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumNotLike(String value) {
            addCriterion("im.register_terminal_num not like", value, "registerTerminalNum");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumIn(List<String> values) {
            addCriterion("im.register_terminal_num in", values, "registerTerminalNum");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumNotIn(List<String> values) {
            addCriterion("im.register_terminal_num not in", values, "registerTerminalNum");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumBetween(String value1, String value2) {
            addCriterion("im.register_terminal_num between", value1, value2, "registerTerminalNum");
            return (Criteria) this;
        }

        public Criteria andRegisterTerminalNumNotBetween(String value1, String value2) {
            addCriterion("im.register_terminal_num not between", value1, value2, "registerTerminalNum");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreUserIdIsNull() {
            addCriterion("im.register_store_user_id is null");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreUserIdIsNotNull() {
            addCriterion("im.register_store_user_id is not null");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreUserIdEqualTo(Long value) {
            addCriterion("im.register_store_user_id =", value, "registerStoreUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreUserIdNotEqualTo(Long value) {
            addCriterion("im.register_store_user_id <>", value, "registerStoreUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreUserIdGreaterThan(Long value) {
            addCriterion("im.register_store_user_id >", value, "registerStoreUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreUserIdGreaterThanOrEqualTo(Long value) {
            addCriterion("im.register_store_user_id >=", value, "registerStoreUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreUserIdLessThan(Long value) {
            addCriterion("im.register_store_user_id <", value, "registerStoreUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreUserIdLessThanOrEqualTo(Long value) {
            addCriterion("im.register_store_user_id <=", value, "registerStoreUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreUserIdIn(List<Long> values) {
            addCriterion("im.register_store_user_id in", values, "registerStoreUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreUserIdNotIn(List<Long> values) {
            addCriterion("im.register_store_user_id not in", values, "registerStoreUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreUserIdBetween(Long value1, Long value2) {
            addCriterion("im.register_store_user_id between", value1, value2, "registerStoreUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterStoreUserIdNotBetween(Long value1, Long value2) {
            addCriterion("im.register_store_user_id not between", value1, value2, "registerStoreUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeIsNull() {
            addCriterion("im.register_time is null");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeIsNotNull() {
            addCriterion("im.register_time is not null");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeEqualTo(Date value) {
            addCriterion("im.register_time =", value, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeNotEqualTo(Date value) {
            addCriterion("im.register_time <>", value, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeGreaterThan(Date value) {
            addCriterion("im.register_time >", value, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("im.register_time >=", value, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeLessThan(Date value) {
            addCriterion("im.register_time <", value, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeLessThanOrEqualTo(Date value) {
            addCriterion("im.register_time <=", value, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeIn(List<Date> values) {
            addCriterion("im.register_time in", values, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeNotIn(List<Date> values) {
            addCriterion("im.register_time not in", values, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeBetween(Date value1, Date value2) {
            addCriterion("im.register_time between", value1, value2, "registerTime");
            return (Criteria) this;
        }

        public Criteria andRegisterTimeNotBetween(Date value1, Date value2) {
            addCriterion("im.register_time not between", value1, value2, "registerTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("im.update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("im.update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("im.update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("im.update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("im.update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("im.update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("im.update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("im.update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("im.update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("im.update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("im.update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("im.update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andEnableIsNull() {
            addCriterion("im.enable is null");
            return (Criteria) this;
        }

        public Criteria andEnableIsNotNull() {
            addCriterion("im.enable is not null");
            return (Criteria) this;
        }

        public Criteria andEnableEqualTo(Byte value) {
            addCriterion("im.enable =", value, "enable");
            return (Criteria) this;
        }

        public Criteria andEnableNotEqualTo(Byte value) {
            addCriterion("im.enable <>", value, "enable");
            return (Criteria) this;
        }

        public Criteria andEnableGreaterThan(Byte value) {
            addCriterion("im.enable >", value, "enable");
            return (Criteria) this;
        }

        public Criteria andEnableGreaterThanOrEqualTo(Byte value) {
            addCriterion("im.enable >=", value, "enable");
            return (Criteria) this;
        }

        public Criteria andEnableLessThan(Byte value) {
            addCriterion("im.enable <", value, "enable");
            return (Criteria) this;
        }

        public Criteria andEnableLessThanOrEqualTo(Byte value) {
            addCriterion("im.enable <=", value, "enable");
            return (Criteria) this;
        }

        public Criteria andEnableIn(List<Byte> values) {
            addCriterion("im.enable in", values, "enable");
            return (Criteria) this;
        }

        public Criteria andEnableNotIn(List<Byte> values) {
            addCriterion("im.enable not in", values, "enable");
            return (Criteria) this;
        }

        public Criteria andEnableBetween(Byte value1, Byte value2) {
            addCriterion("im.enable between", value1, value2, "enable");
            return (Criteria) this;
        }

        public Criteria andEnableNotBetween(Byte value1, Byte value2) {
            addCriterion("im.enable not between", value1, value2, "enable");
            return (Criteria) this;
        }

        public Criteria andMerchantIdIsNull() {
            addCriterion("im.merchant_id is null");
            return (Criteria) this;
        }

        public Criteria andMerchantIdIsNotNull() {
            addCriterion("im.merchant_id is not null");
            return (Criteria) this;
        }

        public Criteria andMerchantIdEqualTo(Long value) {
            addCriterion("im.merchant_id =", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdNotEqualTo(Long value) {
            addCriterion("im.merchant_id <>", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdGreaterThan(Long value) {
            addCriterion("im.merchant_id >", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdGreaterThanOrEqualTo(Long value) {
            addCriterion("im.merchant_id >=", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdLessThan(Long value) {
            addCriterion("im.merchant_id <", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdLessThanOrEqualTo(Long value) {
            addCriterion("im.merchant_id <=", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdIn(List<Long> values) {
            addCriterion("im.merchant_id in", values, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdNotIn(List<Long> values) {
            addCriterion("im.merchant_id not in", values, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdBetween(Long value1, Long value2) {
            addCriterion("im.merchant_id between", value1, value2, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdNotBetween(Long value1, Long value2) {
            addCriterion("im.merchant_id not between", value1, value2, "merchantId");
            return (Criteria) this;
        }

        public Criteria andRegisterMerchantUserIdIsNull() {
            addCriterion("im.register_merchant_user_id is null");
            return (Criteria) this;
        }

        public Criteria andRegisterMerchantUserIdIsNotNull() {
            addCriterion("im.register_merchant_user_id is not null");
            return (Criteria) this;
        }

        public Criteria andRegisterMerchantUserIdEqualTo(Long value) {
            addCriterion("im.register_merchant_user_id =", value, "registerMerchantUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterMerchantUserIdNotEqualTo(Long value) {
            addCriterion("im.register_merchant_user_id <>", value, "registerMerchantUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterMerchantUserIdGreaterThan(Long value) {
            addCriterion("im.register_merchant_user_id >", value, "registerMerchantUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterMerchantUserIdGreaterThanOrEqualTo(Long value) {
            addCriterion("im.register_merchant_user_id >=", value, "registerMerchantUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterMerchantUserIdLessThan(Long value) {
            addCriterion("im.register_merchant_user_id <", value, "registerMerchantUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterMerchantUserIdLessThanOrEqualTo(Long value) {
            addCriterion("im.register_merchant_user_id <=", value, "registerMerchantUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterMerchantUserIdIn(List<Long> values) {
            addCriterion("im.register_merchant_user_id in", values, "registerMerchantUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterMerchantUserIdNotIn(List<Long> values) {
            addCriterion("im.register_merchant_user_id not in", values, "registerMerchantUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterMerchantUserIdBetween(Long value1, Long value2) {
            addCriterion("im.register_merchant_user_id between", value1, value2, "registerMerchantUserId");
            return (Criteria) this;
        }

        public Criteria andRegisterMerchantUserIdNotBetween(Long value1, Long value2) {
            addCriterion("im.register_merchant_user_id not between", value1, value2, "registerMerchantUserId");
            return (Criteria) this;
        }

        public Criteria andAgreementIsNull() {
            addCriterion("im.agreement is null");
            return (Criteria) this;
        }

        public Criteria andAgreementIsNotNull() {
            addCriterion("im.agreement is not null");
            return (Criteria) this;
        }

        public Criteria andAgreementEqualTo(Byte value) {
            addCriterion("im.agreement =", value, "agreement");
            return (Criteria) this;
        }

        public Criteria andAgreementNotEqualTo(Byte value) {
            addCriterion("im.agreement <>", value, "agreement");
            return (Criteria) this;
        }

        public Criteria andAgreementGreaterThan(Byte value) {
            addCriterion("im.agreement >", value, "agreement");
            return (Criteria) this;
        }

        public Criteria andAgreementGreaterThanOrEqualTo(Byte value) {
            addCriterion("im.agreement >=", value, "agreement");
            return (Criteria) this;
        }

        public Criteria andAgreementLessThan(Byte value) {
            addCriterion("im.agreement <", value, "agreement");
            return (Criteria) this;
        }

        public Criteria andAgreementLessThanOrEqualTo(Byte value) {
            addCriterion("im.agreement <=", value, "agreement");
            return (Criteria) this;
        }

        public Criteria andAgreementIn(List<Byte> values) {
            addCriterion("im.agreement in", values, "agreement");
            return (Criteria) this;
        }

        public Criteria andAgreementNotIn(List<Byte> values) {
            addCriterion("im.agreement not in", values, "agreement");
            return (Criteria) this;
        }

        public Criteria andAgreementBetween(Byte value1, Byte value2) {
            addCriterion("im.agreement between", value1, value2, "agreement");
            return (Criteria) this;
        }

        public Criteria andAgreementNotBetween(Byte value1, Byte value2) {
            addCriterion("im.agreement not between", value1, value2, "agreement");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlIsNull() {
            addCriterion("im.headimgurl is null");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlIsNotNull() {
            addCriterion("im.headimgurl is not null");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlEqualTo(String value) {
            addCriterion("im.headimgurl =", value, "headimgurl");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlNotEqualTo(String value) {
            addCriterion("im.headimgurl <>", value, "headimgurl");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlGreaterThan(String value) {
            addCriterion("im.headimgurl >", value, "headimgurl");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlGreaterThanOrEqualTo(String value) {
            addCriterion("im.headimgurl >=", value, "headimgurl");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlLessThan(String value) {
            addCriterion("im.headimgurl <", value, "headimgurl");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlLessThanOrEqualTo(String value) {
            addCriterion("im.headimgurl <=", value, "headimgurl");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlLike(String value) {
            addCriterion("im.headimgurl like", value, "headimgurl");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlNotLike(String value) {
            addCriterion("im.headimgurl not like", value, "headimgurl");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlIn(List<String> values) {
            addCriterion("im.headimgurl in", values, "headimgurl");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlNotIn(List<String> values) {
            addCriterion("im.headimgurl not in", values, "headimgurl");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlBetween(String value1, String value2) {
            addCriterion("im.headimgurl between", value1, value2, "headimgurl");
            return (Criteria) this;
        }

        public Criteria andHeadimgurlNotBetween(String value1, String value2) {
            addCriterion("im.headimgurl not between", value1, value2, "headimgurl");
            return (Criteria) this;
        }

        public Criteria andSyncWxStatusIsNull() {
            addCriterion("im.sync_wx_status is null");
            return (Criteria) this;
        }

        public Criteria andSyncWxStatusIsNotNull() {
            addCriterion("im.sync_wx_status is not null");
            return (Criteria) this;
        }

        public Criteria andSyncWxStatusEqualTo(Integer value) {
            addCriterion("im.sync_wx_status =", value, "syncWxStatus");
            return (Criteria) this;
        }

        public Criteria andSyncWxStatusNotEqualTo(Integer value) {
            addCriterion("im.sync_wx_status <>", value, "syncWxStatus");
            return (Criteria) this;
        }

        public Criteria andSyncWxStatusGreaterThan(Integer value) {
            addCriterion("im.sync_wx_status >", value, "syncWxStatus");
            return (Criteria) this;
        }

        public Criteria andSyncWxStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("im.sync_wx_status >=", value, "syncWxStatus");
            return (Criteria) this;
        }

        public Criteria andSyncWxStatusLessThan(Integer value) {
            addCriterion("im.sync_wx_status <", value, "syncWxStatus");
            return (Criteria) this;
        }

        public Criteria andSyncWxStatusLessThanOrEqualTo(Integer value) {
            addCriterion("im.sync_wx_status <=", value, "syncWxStatus");
            return (Criteria) this;
        }

        public Criteria andSyncWxStatusIn(List<Integer> values) {
            addCriterion("im.sync_wx_status in", values, "syncWxStatus");
            return (Criteria) this;
        }

        public Criteria andSyncWxStatusNotIn(List<Integer> values) {
            addCriterion("im.sync_wx_status not in", values, "syncWxStatus");
            return (Criteria) this;
        }

        public Criteria andSyncWxStatusBetween(Integer value1, Integer value2) {
            addCriterion("im.sync_wx_status between", value1, value2, "syncWxStatus");
            return (Criteria) this;
        }

        public Criteria andSyncWxStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("im.sync_wx_status not between", value1, value2, "syncWxStatus");
            return (Criteria) this;
        }

        public Criteria andSyncWxTimeIsNull() {
            addCriterion("im.sync_wx_time is null");
            return (Criteria) this;
        }

        public Criteria andSyncWxTimeIsNotNull() {
            addCriterion("im.sync_wx_time is not null");
            return (Criteria) this;
        }

        public Criteria andSyncWxTimeEqualTo(Date value) {
            addCriterion("im.sync_wx_time =", value, "syncWxTime");
            return (Criteria) this;
        }

        public Criteria andSyncWxTimeNotEqualTo(Date value) {
            addCriterion("im.sync_wx_time <>", value, "syncWxTime");
            return (Criteria) this;
        }

        public Criteria andSyncWxTimeGreaterThan(Date value) {
            addCriterion("im.sync_wx_time >", value, "syncWxTime");
            return (Criteria) this;
        }

        public Criteria andSyncWxTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("im.sync_wx_time >=", value, "syncWxTime");
            return (Criteria) this;
        }

        public Criteria andSyncWxTimeLessThan(Date value) {
            addCriterion("im.sync_wx_time <", value, "syncWxTime");
            return (Criteria) this;
        }

        public Criteria andSyncWxTimeLessThanOrEqualTo(Date value) {
            addCriterion("im.sync_wx_time <=", value, "syncWxTime");
            return (Criteria) this;
        }

        public Criteria andSyncWxTimeIn(List<Date> values) {
            addCriterion("im.sync_wx_time in", values, "syncWxTime");
            return (Criteria) this;
        }

        public Criteria andSyncWxTimeNotIn(List<Date> values) {
            addCriterion("im.sync_wx_time not in", values, "syncWxTime");
            return (Criteria) this;
        }

        public Criteria andSyncWxTimeBetween(Date value1, Date value2) {
            addCriterion("im.sync_wx_time between", value1, value2, "syncWxTime");
            return (Criteria) this;
        }

        public Criteria andSyncWxTimeNotBetween(Date value1, Date value2) {
            addCriterion("im.sync_wx_time not between", value1, value2, "syncWxTime");
            return (Criteria) this;
        }

        public Criteria andFaceIdIsNull() {
            addCriterion("im.face_id is null");
            return (Criteria) this;
        }

        public Criteria andFaceIdIsNotNull() {
            addCriterion("im.face_id is not null");
            return (Criteria) this;
        }

        public Criteria andFaceIdEqualTo(String value) {
            addCriterion("im.face_id =", value, "faceId");
            return (Criteria) this;
        }

        public Criteria andFaceIdNotEqualTo(String value) {
            addCriterion("im.face_id <>", value, "faceId");
            return (Criteria) this;
        }

        public Criteria andFaceIdGreaterThan(String value) {
            addCriterion("im.face_id >", value, "faceId");
            return (Criteria) this;
        }

        public Criteria andFaceIdGreaterThanOrEqualTo(String value) {
            addCriterion("im.face_id >=", value, "faceId");
            return (Criteria) this;
        }

        public Criteria andFaceIdLessThan(String value) {
            addCriterion("im.face_id <", value, "faceId");
            return (Criteria) this;
        }

        public Criteria andFaceIdLessThanOrEqualTo(String value) {
            addCriterion("im.face_id <=", value, "faceId");
            return (Criteria) this;
        }

        public Criteria andFaceIdLike(String value) {
            addCriterion("im.face_id like", value, "faceId");
            return (Criteria) this;
        }

        public Criteria andFaceIdNotLike(String value) {
            addCriterion("im.face_id not like", value, "faceId");
            return (Criteria) this;
        }

        public Criteria andFaceIdIn(List<String> values) {
            addCriterion("im.face_id in", values, "faceId");
            return (Criteria) this;
        }

        public Criteria andFaceIdNotIn(List<String> values) {
            addCriterion("im.face_id not in", values, "faceId");
            return (Criteria) this;
        }

        public Criteria andFaceIdBetween(String value1, String value2) {
            addCriterion("im.face_id between", value1, value2, "faceId");
            return (Criteria) this;
        }

        public Criteria andFaceIdNotBetween(String value1, String value2) {
            addCriterion("im.face_id not between", value1, value2, "faceId");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}